package com.sspku.weinotes.service;

import com.sspku.weinotes.entity.NoteBook;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sspku.weinotes.exception.IncorrectParameterException;
import com.sspku.weinotes.exception.NoSuchIdException;

import java.util.List;

/**
* @author user
* @description 针对表【note_book】的数据库操作Service
*
*/
public interface NoteBookService extends IService<NoteBook> {
    /**
     * 获取登陆用户的所有笔记本集合
     *
     * @return 笔记本集合
     */
    List<NoteBook> getAllNoteBook(int uid) throws NoSuchIdException;

    /**
     * 根据笔记本ID删除指定笔记本
     *
     * @param id 笔记本ID
     * @throws NoSuchIdException 当指定的ID不存在时
     */
    void deleteNoteBookById(int id) throws NoSuchIdException;

    /**
     * 根据笔记本ID修改笔记本名称
     *
     * @param id   笔记本ID
     * @param name 新的笔记本名称
     * @return 被修改的实体
     * @throws NoSuchIdException           当指定的ID不存在时
     * @throws IncorrectParameterException 笔记本名称为null或空字符串时
     */
    boolean modifyNoteBookName(int id, String name) throws NoSuchIdException, IncorrectParameterException;

    /**
     * 新建笔记本
     *
     * @param name 笔记本名称
     * @return 被保存的实体
     * @throws IncorrectParameterException 笔记本名称为null或空字符串时
     */
    boolean addNoteBook(int uid, String name) throws IncorrectParameterException;
}
